#include  <iostream>
#include "myStack.h"

bool isValid(const char *str)
{   //创建栈对象
    myStack stack(10);
    while(*str != '\0')
    {
        if(*str == '{' || *str == '['||*str == '(')
        {
            stack.push(*str);
        }
        else
        {   
            if(stack.empty() == true)
            {
                return false;
            }
            else
            {
                char top = stack.top();
                stack.pop();
                if(*str == ')'&&top != '(')
                {
                    return false;
                }
                else if(*str ==']'&&top != '[')
                { 
                    return false;
                }
                else if(*str == '}'&&top != '{')
                {
                    return false;
                }
            }
        }
        str++;
    }
    if(stack.empty() == true)
    {
        return true;
    }
    else
    {
        return false;
    }
}

int main()
{
    // std::cout<<"hellocworld"<<std::endl;

    // myStack stack(10);

    // for(int idx = 1; idx <= 5;idx++)
    // {
    //     stack.push(idx);
    // }

    // std::cout <<"size:"<< stack.size()<<std::endl;
    // std::cout <<"top:"<< stack.top()<<std::endl;
    char *str = "(){}[]";
    std::cout<<isValid(str)<<std::endl;
    return 0;
}

